package cn.krui.project.service.article;

import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.mapping.ResultMapping;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.krui.helper.db.DBHelper;
import cn.krui.helper.db.DataPage;
import cn.krui.project.bean.article.ArticleModel5;
import cn.krui.project.bean.article.ArticleModel5View;
import cn.krui.project.controller.ArticleBase;
import cn.krui.project.mapper.article.ArticleModel5Mapper;
import cn.krui.project.mapper.article.ArticleModel5MapperView;

/**
 * @author: zc
 * email: zc8023zs@163.com
 * create_time: 2020/6/11 16:42:21
 */
@Service
public class ArticleModel5Service extends ArticleBase {
    @Autowired
    private ArticleModel5Mapper articleModel5Mapper;

    @Autowired
    private ArticleModel5MapperView articleModel5MapperView;
    
    @Autowired
    private DBHelper dbHelper;

    /**
     * 内容_模型_下载新增
     * @param model 内容_模型_下载实体
     * @return 影响行数
     */
    public Integer add(ArticleModel5 model){
        return articleModel5Mapper.insert(model);
    }

    /**
     * 内容_模型_下载修改byid
     * @param model 内容_模型_下载实体
     * @return 影响行数
     */
    public Integer update(ArticleModel5 model) {
        return articleModel5Mapper.updateById(model);
    }

    /**
     * 内容_模型_下载修改by条件
     * @param model 内容_模型_下载实体
     * @param where 内容_模型_下载条件
     * @return 影响行数
     */
    public Integer update(ArticleModel5 model, Wrapper<ArticleModel5> where) {
        return articleModel5Mapper.update(model, where);
    }

    /**
     * 内容_模型_下载修改bySQL *version_id = newVersion where version_id = oldVersion
     * @param fields 修改的数据 col1=xx,col2=yy
     * @param where 参数化条件 col1=#{col1}
     * @param params 条件参数 col1=xx
     * @return 影响行数
     */
    public Integer update(Map<String, Object> fields, String where, Map<String, Object> params) {
        return dbHelper.update("qr_article_model_5", fields, where, params);
    }

    /**
     * 内容_模型_下载删除byid
     * @param id 内容_模型_下载主键
     * @return 影响行数
     */
    public Integer del(int id) {
        return articleModel5Mapper.deleteById(id);
    }

    /**
     * 内容_模型_下载删除by条件
     * @param where 内容_模型_下载条件
     * @return 影响行数
     */
    public Integer del(Wrapper<ArticleModel5> where) {
        return articleModel5Mapper.delete(where);
    }

    /**
     * 内容_模型_下载批量删除byid
     * @param ids 内容_模型_下载主键集合
     * @return 影响行数
     */
    public Integer del(List<Integer> ids){
        return articleModel5Mapper.deleteBatchIds(ids);
    }

    /**
     * 内容_模型_下载批量删除bymap条件
     * @param map 内容_模型_下载map条件
     * @return 影响行数
     */
    public Integer del(Map<String,Object> map){
        return articleModel5Mapper.deleteByMap(map);
    }

    /**
     * 内容_模型_下载详情byid
     * @param id 内容_模型_下载主键
     * @return 内容_模型_下载详情
     */
    public ArticleModel5View info(int id){
        return articleModel5MapperView.selectById(id);
    }

    /**
     * 内容_模型_下载详情by条件
     * @param where 内容_模型_下载条件
     * @return 内容_模型_下载详情
     */
    public ArticleModel5View info(Wrapper<ArticleModel5View> where){
        return articleModel5MapperView.selectOne(where);
    }

    /**
     * 内容_模型_下载详情bySQL
     * @param columns  列名col1,col2,col3^
     * @param where 条件 col1=#{col1}
     * @param params col1:xx
     * @param mappings col1->col1
     * @return
     */
    public ArticleModel5 info(String columns, String where, Map<String, Object> params, ResultMapping mappings) {
        return dbHelper.selectOne(columns, "qr_article_model_5", where, params, ArticleModel5.class, mappings);
    }

    /**
     * 内容_模型_下载批量查询byid
     * @param ids 内容_模型_下载主键集合
     * @return 内容_模型_下载列表
     */
    public List<ArticleModel5View> select(List<Integer> ids){
        return articleModel5MapperView.selectBatchIds(ids);
    }

    /**
     * 内容_模型_下载批量查询by条件
     * @param where 内容_模型_下载条件
     * @return 内容_模型_下载列表
     */
    public List<ArticleModel5View> select(Wrapper<ArticleModel5View> where){
        return articleModel5MapperView.selectList(where);
    }

    /**
     * 内容_模型_下载批量查询bymap条件
     * @param map 内容_模型_下载map条件
     * @return 内容_模型_下载列表
     */
    public List<ArticleModel5View> select(Map<String,Object> map){
        return articleModel5MapperView.selectByMap(map);
    }

    /**
     * 内容_模型_下载批量查询b条件分页
     * @param page 分页条件
     * @param where 查询条件
     * @return
     */
    public IPage<ArticleModel5View> select(IPage<ArticleModel5View> page, Wrapper<ArticleModel5View> where){
        return articleModel5MapperView.selectPage(page, where);
    }

    /**
     * 内容_模型_下载查询记录数
     * @param where 查询条件
     * @return
     */
    public Integer selectCount(Wrapper<ArticleModel5View> where){
        return articleModel5MapperView.selectCount(where);
    }

    /**
     * 内容_模型_下载批量查询bySQL条件分页
     * @param columns 列col1,col2,col3……
     * @param where 条件col1=#{col1} and col2=#{col2}
     * @param orderBy 排序字段
     * @param params 参数化 col1=xx
     * @param pageNumber 分页页码
     * @param pageSize 每页行数
     * @param mappings 查询列和实体映射
     * @return 分页之后的数据含总行数
     */
    public DataPage<ArticleModel5View> select(String columns, String where, String orderBy, Map<String, Object> params, int pageNumber, int pageSize, ResultMapping mappings){
        return dbHelper.select(columns, "qr_article_model_5", where, orderBy, params, pageNumber, pageSize, ArticleModel5View.class,mappings);
    }

    /**
     * 内容_模型_下载批量查询bySQL条件
     * @param columns 列col1,col2,col3……
     * @param where 条件col1=#{col1} and col2=#{col2}
     * @param params 参数化 col1=xx
     * @param mappings 查询列和实体映射
     * @return 栏目扩展列表
     */
    public List<ArticleModel5View> select(String columns, String where, Map<String, Object> params, ResultMapping mappings){
        return dbHelper.select(columns,"qr_article_model_5",where,params,ArticleModel5View.class,mappings);
    }
}